package com.study.pre.function;

public class FunctionMain {

    public static void main(String[] args) {

        show(new MyFunctionalInterfaceImpl());

        // 匿名内部类 会编译一个class文件，lambda不会
        show(new MyFunctionalInterface() {
            @Override
            public void method() {
                System.out.println("匿名函数 method");
            }
        });

        // 函数式接口作为参数或者返回值，可以使用lambda表达式
        show(()->{System.out.println("lambda表达式 method");});

        //简化lambda表达式  当输出语句只有一行代码时，可以不使用{}
        show(()->System.out.println("简化 lambda表达式  method"));

    }

    public static void show(MyFunctionalInterface myFunctionalInterface){
        myFunctionalInterface.method();
    }
}
